import {GuiId, UISkillObj} from "../controller/model/ControllerOpt";

export enum FinalKey {
    hotKeys,
    skillHotKeys,
    vestId,
    spellRangeUnitId,
    moveUnitId,
    itemUnitId,
    mainHome,
    catchPetAbilityId,
    callPetAbilityId1,
    callBackPetAbilityId,
    releasePetAbilityId,

    boxId,
    castingStrip,


    water,
    generalMagic,
    phoenixSkill,
    changeBagSkill,
    resetGoodSkill,
    hookSkill,
    pushSkill,
    engulfSkill,
    engulfPetSkill,
    hatchPetSkill,
    evolutionPetSkill,
    phoenixEgg,
    phoenixTime,
    showAttackRangeSkill,
    expCatchSkill,
    mustCatchSkill,
    showFightValue,

    // UI Skill
    uiSkillMap,


    poisonEffect,

    logPath,
    foreverPeriodic,

    chooseLoseAbility,
    callBoss,

    safeRange,

    noPetRange,

    oneClickDrop,
    oneClickMix,
    oneClickGet,

    oneClickSell,
    oneClickFixup,
    itemLevelUpItem,
    itemLevelUp,

    itemLevelUpItemSuper,
    itemLevelUpSuper,

    transFirstItem,
    bigJump,

    oneClickCallPet,
    oneClickCallBack,
    addToOneClickCall,
    cancelToOneClickCall,

    addPatro,
    cancelPatro,

    disappearTime,

    fixUpRanges,
    allMapRect,
    invulnerableSkill,

    nullSealItemId,
    sealSkillId,
    sealItemId,
    forgProtectItemId,
}



// 配置文件（主要用来与表中所填值对接）
export class FinalConstant {
    // 对话框热键
    static [FinalKey.hotKeys] = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    // 对话框热键
    static [FinalKey.skillHotKeys] = ['Q', 'W', 'E', 'R', 'T', 'Y'];
    // bagPet
    static [FinalKey.boxId] = 'su01';
    // 马甲单位Id
    static [FinalKey.vestId] = 'su02';
    // 技能范围单位Id
    static [FinalKey.spellRangeUnitId] = 'su03';
    // 单位移动单位Id
    static [FinalKey.moveUnitId] = 'su04';
    // 物品马甲的Id
    static [FinalKey.itemUnitId] = 'su05';
    // -----------------------------------------------------------------------------------------------------------------------------------------------
    //  globalSet.ts
    // 主家的id
    static [FinalKey.mainHome] = 'n001';

    // 捕捉技能Id
    static [FinalKey.catchPetAbilityId] = 'sk01';
    // 召唤技能Id
    static [FinalKey.callPetAbilityId1] = 'sk02';

    // 收回宠物
    static [FinalKey.callBackPetAbilityId] = 'sk11';
    // 放生宠物
    static [FinalKey.releasePetAbilityId] = 'sk12';

    // 施法条
    static [FinalKey.castingStrip] = 'su51'

    // 水元素生命周期
    static [FinalKey.water] = 'BHwe'

    // 定制ID
    // 通魔
    static [FinalKey.generalMagic] = 'ANcl';
    // 凤凰
    static [FinalKey.phoenixSkill] = 'sk14';
    static [FinalKey.phoenixEgg] = 'su50'
    static [FinalKey.phoenixTime] = 3;

    // 切换背包
    static [FinalKey.changeBagSkill] = 'sk15';
    // 重铸
    static [FinalKey.resetGoodSkill] = 'sk16';
    // 钩子
    static [FinalKey.hookSkill] = 'sk23';
    // 推动
    static [FinalKey.pushSkill] = 'sk24';
    // 吞噬
    static [FinalKey.engulfSkill] = 'sk25';
    // 吞噬宠物
    static [FinalKey.engulfPetSkill] = 'sk27';
    // 宠物孵蛋
    static [FinalKey.hatchPetSkill] = 'sk28';
    // 宠物进化
    static [FinalKey.evolutionPetSkill] = 'sk29';

    // 捕捉后给与经验
    static [FinalKey.expCatchSkill] = 'sk38';

    // 50血必捉
    static [FinalKey.mustCatchSkill] = 'sk39';

    // 显示战斗力
    static [FinalKey.showFightValue] = 'sk49';

    static [FinalKey.poisonEffect] = 'area05'

    static [FinalKey.logPath] = 'solar/log.sdb';

    // timeController 无限循环
    static [FinalKey.foreverPeriodic] = 99999;

    static [FinalKey.chooseLoseAbility]: string = 'si01';
    static [FinalKey.callBoss]: string = 'si02';


    static [FinalKey.safeRange]: string = 'safePlace';

    static [FinalKey.noPetRange]: string;

    static [FinalKey.uiSkillMap]: UISkillObj[] = [
        {
            guiId: GuiId.goodsBar,
            skillId: 'sk32',
        },
        {
            guiId: GuiId.petBar,
            skillId: 'sk33',
        },
        {
            guiId: GuiId.taskButton,
            skillId: 'sk35',
        },
        {
            guiId: GuiId.damageButton,
            skillId: 'sk34',
        },
    ];

    static [FinalKey.showAttackRangeSkill] = 'sk26';

    static [FinalKey.oneClickMix] = 'sk18'
    static [FinalKey.oneClickGet] = 'sk19'
    static [FinalKey.oneClickDrop] = 'sk20'
    static [FinalKey.transFirstItem] = 'sk21'
    static [FinalKey.oneClickSell] = 'sk47'
    static [FinalKey.oneClickFixup] = 'sk46'
    static [FinalKey.itemLevelUp] = 'sk48'
    static [FinalKey.itemLevelUpItem] = 'si11'

    static [FinalKey.itemLevelUpSuper] = 'sk50'
    static [FinalKey.bigJump] = 'sk51'

    static [FinalKey.itemLevelUpItemSuper] = 'si12'


    static [FinalKey.addToOneClickCall] = 'sk40'
    static [FinalKey.cancelToOneClickCall] = 'sk41'
    static [FinalKey.oneClickCallPet] = 'sk42'
    static [FinalKey.oneClickCallBack] = 'sk43'

    static [FinalKey.addPatro] = 'sk44'
    static [FinalKey.cancelPatro] = 'sk45'

    static [FinalKey.disappearTime] = 0.5;

    static [FinalKey.fixUpRanges] = [
        'playerHome1',
        'playerHome2',
        'playerHome3',
        'playerHome4',
        'playerHome5',
    ];

    static [FinalKey.allMapRect]: string = 'allMap';

    static [FinalKey.invulnerableSkill] = 'Avul';

    static [FinalKey.invulnerableSkill] = 'Avul';

    static [FinalKey.nullSealItemId] = 'si13';
    static [FinalKey.sealSkillId] = 'sk53';
    static [FinalKey.sealItemId] = 'si14';
    static [FinalKey.forgProtectItemId] = 'si25';

}